You can add additional attributes to traces in Langtrace by simply wrapping your code with the withAdditionalAttributes for typescript or inject_additional_attributes function for python. This will add the specified attributes to the trace spans. Make sure to pass the attributes as a key-value pair to the function.

Typescript SDK

import * as Langtrace from "@langtrase/typescript-sdk";
import OpenAI from 'openai'
Langtrace.init({
  write_spans_to_console: true,
})
const openai = new OpenAI()
export const run = async ()=>{
    const response = await Langtrace.withAdditionalAttributes(async () => {
      return await openai.chat.completions.create({
        model: 'gpt-4',
        messages: [
          { role: 'system', content: 'Talk like a pirate' },
          { role: 'user', content: 'Tell me a story in 3 sentences or less.' }
        ],
        stream: false
      })
    }, { user_id: "userid1234", request_id: "randomId" }) // Add additional attributes to the trace spans can be any key value pair
}
run().then(() => console.log('done'))

Python SDK

from langtrace_python_sdk import inject_additional_attributes

def do_llm_stuff(name=""):
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": "Say this is a test three times"}],
        stream=False,
    )
    return response


def main():
  response = inject_additional_attributes(lambda: do_llm_stuff(name="llm"), {'user_id': 'userid1234'})

  # if the function do not take arguments then this syntax will work
  response = inject_additional_attributes(do_llm_stuff, {'user_id': 'userid1234'})

main()

DO NOT USE this the Python decorator - with_additional_attributes. It will be deprecated soon. Please use inject_additional_attributes function instead.